#!/bin/sh

#This script allows access to the ADSL modem web interface when pppoe is used.
#For this to work configure your modem in bridge mode with DHCP enabled on the modem.
#This will cause the modem to dish an address to the router interface when requested below.
#
#Alternatively you can manually set the below variable ROUTER_IP with the IP address 
#you want to use.  Make sure the IP address is on the same network as the modem.
#ROUTER_IP=10.0.0.2

#Main case statement used only by udhcp which only calls with one of the 
#following four key words in parameter 1.
case "$1" in
	deconfig)
		ifconfig "$interface" 0.0.0.0
        exit 0
	;;
	renew)
		ifconfig $interface $ip netmask ${subnet:-255.255.255.0} broadcast ${broadcast:-+}
        exit 0
	;;
	bound)
		ifconfig $interface $ip netmask ${subnet:-255.255.255.0} broadcast ${broadcast:-+}
        exit 0
	;;
	nak)
        exit 0
	;;
	leasefail)
        exit 0
	;;
esac

#if we get here then udhcp did not call us.  Must be from pppd or /usr/lib/gargoyle_firewall_util

#configure the ethernet interface.
if [ -n "$ROUTER_IP" ] ; then
	#In manual mode the user gave us an IP address for our interface
	ifconfig $2 $ROUTER_IP netmask 255.255.255.0
else
	#In auto mode we first check if we have an ip address already.
	ROUTER_IP=$(ifconfig $2 | grep "inet addr:")
	if [ -z "$ROUTER_IP" ]; then
		#Dont have one so try an get one.
		udhcpc -f -i $2 -n -q -s /etc/ppp/ip-up.d/modemaccess.sh
	fi
fi

exit 0
